前端團隊在實際專案開發上遇到的痛點問題:
- 團隊已專案為導向,一個專案一個倉庫,新專案與舊專案相互獨立,無法重複使用已有元件庫
- 從專案中累積的經驗依賴項目,沒有提煉出來,無法快速重複使用
- 封裝的組件無法共用,無組件文檔
- 使用微前端,採用相同架構時,網路請求、工具類別、佈局元件等都需要重新開發
- 開始新專案時,要從舊專案複製基本功能出來
團隊使用monorepo(turborepo)是如何解決上述痛點的?
- 將一些做好的元件抽離成獨立項目,例如流程編排、動態表單,其他項目使用時引入即可(可能涉及重構)
- 建構UI庫項目,應用項目可直接引入使用,同時具備完整的文檔
- 將Request等工具類、或加密等抽離成獨立項目,並由其他項目重複使用
需要先理解 monorepo 是如何運作的?
monorepo的主要建構的scope是work space。
您建立的每個應用程式和軟體包都將在自己的work space中,並有自己的package.json
工作區可以相互依賴,例如docs工作區可以依賴shared-utils:
{
"dependencies": {
"shared-utils": "*"
}
}
同時,根資料夾稱為根工作區並且存在一個package.json,它的作用是:
- 指定存在於整個monorepo 中的依賴項
- 新增運行在整個monorepo 上的任務
之後會在後續的文章討論,利用如何用pnpm建立的自己的monorepo專案